Method and apparatus for accessing a building system model

ABSTRACT

A software interface is disclosed for a model of a building system stored in a memory, wherein the model comprises a plurality of building space objects. The software interface comprises: (a) logic for receiving a call comprising a function identifier and at least one object identifier, the function identifier representative of a function applicable to a plurality of object types; and (b) logic for employing the function identifier and the at least one object to call a software function in a function library, the software function corresponding to the function applicable to the object type that corresponds to the at least one object.

This application claims the benefit of U.S. Provisional Patent Application Ser. Nos. 60/583,519, 60/583,572, and 60/583,585, each filed Jun. 28, 2004, all of which are incorporated herein by reference.

FIELD OF THE INVENTION

The present invention relates generally to building automation systems, and more particularly, to methods and apparatus for representing and/or storing building automation system data.

BACKGROUND OF THE INVENTION

Building automation systems are comprehensive and distributed control and data collection systems for a variety of building automation functions. Such functions may include comfort systems (also known as heating, ventilation and air condition or HVAC systems), security systems, fire safety systems, as well as others. Building automation systems include various end points from which data is collected. Examples of such end points include temperature sensors, smoke sensors, and light sensors. Building automation systems further include elements that may be controlled, for example, heating coil valves, ventilation dampers, and sprinkler systems. Between the data collection end points and controlled elements are various control logic elements or processors that use the collected data to control the various elements to carry out the ends of providing a comfortable, safe and efficient building.

Building automation systems often employ one or more data networks to facilitate data communication between the various elements. These networks may include local area networks, wide area networks, and the like. Such networks allow for single point user access to many variables in the system, including collected end point data as well as command values for controlling elements. To this end, a supervisory computer having a graphical user interface is connected to one of the networks. The supervisory computer can then obtain selected data from elements on the system and provide commands to selected elements of the system. The graphical display allows for an intuitive representation of the elements of the system, thereby facilitating comprehension of system data. One commercially available building automation system that incorporates the above described elements is the Apogee system available from Siemens Building Technologies, Inc. of Buffalo Grove, Ill.

Increasingly, building automation systems have acquired more useful features to assist in the smooth operation of building systems. For example, in addition to controlling physical devices based on sensor readings to achieve a particular result, building automation systems increasingly are capable of providing trending data from sensors, alarm indications when thresholds are crossed, and other elements that directly or indirectly contribute to improved building system services.

However, most building systems have limited ability to associate sensor values with other building system or general building attributes. Advanced systems allow graphic representations of portions of the building to be generated, and for multiple sensor and/or actuator points to be associated with that graphic representation. By way of example, the Insight™ Workstation, also available from Siemens Building Technologies, Inc. is capable of complex graphical representations of rooms or large devices of the building system. While systems with such graphics provide at least some integrated visible representation of portions of the building automation system, the ability to use such data is limited.

Accordingly, there is a need for a more comprehensive manner in representing various types of data related to a building system. Such manner of representation could facilitate the development of significant new automated services. Such manner of representation could preferably facilitate remote building control.

SUMMARY OF THE INVENTION

The present invention provides an improved building system model and method for accessing the same for use in software applications. The model is a data mode that links information regarding building topology and building automation devices, among other things. The model facilitates a large set of extended services.

A first embodiment of the invention is a model of a building system that is stored in a memory. The model comprises a plurality of building space objects and at least one building automation device object. At least one building space object includes a reference to at least one of the group consisting of a parent building space object and a child building space object, a reference to at least one graphic file containing a graphic image representation of the building space, and a reference to information regarding one or more building automation devices associated with the building space object. Each building automation device object includes a reference to a corresponding building space object, and a reference to at least one operating value of the building automation device. Optionally building automation device objects may further include a reference to a link to a file containing information regarding the at least one building automation device object.

A second embodiment is a method of generating a model of a building system that includes a step of selecting an object template for an element of a building system from an object template library, the object template library including building space object templates and building automation device objects. The method also includes instantiating first information into at least one building space object using the selected object template if the selected object template is a building space object template. In such a case, the first information comprises information associated with the space within a building with which the building system is associated. Another step includes instantiating second information into at least one building automation device object using the selected object template if the selected object template is a building automation device template. The second information in such a case is information associated with a building automation device within the building. The second information includes at least a reference to a building space object corresponding to a building space associated with the building automation device.

Each of the above embodiments links building automation device information to a building structure or space information, and the building structure or space information is preferably arranged in a hierarchical manner. The resulting model of these embodiments thus provides a useful representation of a building system.

The above described features and advantages, as well as others, will become more readily apparent to those of ordinary skill in the art by reference to the following detailed description and accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a mechanical top view floor plan diagram of a building space wherein various HVAC elements are schematically represented;

FIG. 2 shows a schematic diagram of the building automation system that employs the HVAC elements of the building space of FIG. 1;

FIG. 3 shows a block diagram representation of an exemplary model of the building system illustrated in FIGS. 1 and 2, the model incorporating aspects of the invention;

FIG. 4 shows a flow diagram of an exemplary set of operations performed to generate a model in accordance with aspects of the invention;

FIG. 5 shows a block diagram of an exemplary building zone template for use in generating building zone objects in a model according to an embodiment of the invention;

FIG. 5 a shows a block diagram of a building zone object of the model of FIG. 4 generated from the building zone template of FIG. 5;

FIG. 6 shows a block diagram of an exemplary room space template for use in generating room space objects in a model according to an embodiment of the invention;

FIGS. 6 a and 6 b shows a block diagram of room space objects of the model of FIG. 4 generated from the room space template of FIG. 6;

FIG. 7 shows a block diagram of an exemplary inlet shaft segment template for use in generating inlet shaft segment objects in a model according to an embodiment of the invention;

FIGS. 7 a and 7 b show block diagrams of inlet shaft segment objects of the model of FIG. 4 generated from the inlet shaft segment template of FIG. 7;

FIG. 8 shows a block diagram of an exemplary temperature sensor template for use in generating temperature sensor objects in a model according to an embodiment of the invention;

FIGS. 8 a and 8 b show block diagrams of temperature sensor objects of the model of FIG. 4 generated from the temperature sensor template of FIG. 8;

FIG. 9 shows a block diagram of an exemplary damper template for use in generating damper objects in a model according to an embodiment of the invention;

FIGS. 9 a, 9 b and 9 c show block diagrams of damper objects of the model of FIG. 4 generated from the damper template of FIG. 9;

FIG. 10 shows a block diagram of an arrangement for providing software functions that employ the building model disclosed herein according to one aspect of the invention; and

FIG. 11 shows an exemplary set of steps of a software interface.

DETAILED DESCRIPTION

FIG. 1 shows a top view of a building zone 100 that includes a number of building automation devices that form a portion of the heating, ventilation and air conditioning (“HVAC”) for the building system. The building zone 100 includes a first room space 102, a first window 102 a, a second room space 104, a hall space 106 and mechanical space 108. The mechanical space 108 is illustrated as being adjacent to the room spaces 102 and 104 for clarity of exposition, but in actuality would also typically extend over the top of the first room space 102, the second room space 104, and the hall space 106.

The portion of the HVAC system shown in FIG. 1 includes a blower 110, a shaft damper 112, a first room damper 114, a second room damper 116, a flow sensor 118, a first room inlet 120, a second room inlet 122, a shaft branch 124, a first temperature sensor 126, a second temperature sensor 128, and a space temperature adjuster 130. Also shown in FIG. 1 is a security sensor 132 that may be a portion of a security system in the building zone 100. The HVAC system has further control elements and networks that are not illustrated in FIG. 1, but are represented schematically in FIG. 2, which is discussed further below. FIG. 1 shows largely only the mechanical devices in the HVAC system.

In general, the HVAC system is designed to, among other things, regulate temperature in the first room space 102 and the second room space 104. To this end, the HVAC system advances cool (or warm air) into the first and second room spaces 102, 104 as needed to maintain a desired temperature. The “desired temperature” may vary from room space to room space, or may be uniform through the building zone 100. The desired temperature is referred to herein as the set point temperature, and may be dictated by a local thermostat setting or from a central control device, as will be discussed in further detail below.

Referring to the structure of the HVAC system of FIG. 1, the blower 110 is a mechanical device well known in the art that is configured to blow air through the shaft branch 124, as well as other similar shaft branches, not shown. The shaft branch 124 extends adjacent to the room spaces 102 and 104. The first room inlet 120 extends from a portion of the shaft branch 124 toward the first room space 102 and is in fluid communication with the first room space 102. The first room damper 114 is disposed in the first room inlet 120 and operates to controllably meter the flow of air from the shaft branch 124 to the first room space 102. Similarly, the second room inlet 122 extends from another portion of the shaft branch 124 toward the second room space 104 and is in fluid communication with the second room space 104. The second room damper 116 is disposed in the second room inlet 122 and operates to controllably meter the flow of air from the shaft branch 124 to the second room space 104. The shaft damper 112 is arranged in the shaft branch 124 to meter the overall air flow through the shaft branch 124.

In order to determine whether more or less cold (or warm air) is needed to achieve or maintain a set point temperature, the controlling units of the HVAC system (see FIG. 2 discussed below) obtain measured or sensed temperatures from the temperature sensors 126 and 128. If the measured temperature is higher than the set point temperature, then the HVAC system controlling units may cause additional cold air to be advanced into the room spaces 102 and 104 by further opening the dampers 112, 114 and/or 116. Likewise, if the measured temperature is lower than the set point temperature, then the HVAC system controlling units may cause reduced cold air flow into the room spaces 112, 114 and 116 by further closing the dampers 112, 114 and/or 116. The HVAC system may also control other devices, not shown, such as chiller plants or the like, that affect temperature, in conjunction with the dampers 112, 114 and/or 116.

FIG. 2 shows a schematic representation of the HVAC system 200 that includes electrical control and communication devices as well as the HVAC system mechanical elements shown in FIG. 1. The HVAC system 200 includes a control station 202, a building network 204, first and second equipment controllers 206 and 208, and a blower controller 210. The control station 202 is a device that provides status monitoring and control over various aspects of the HVAC system 200. By way of example, the control station 202 may suitably be an INSIGHT™ model workstation available from Siemens Building Technologies, Inc., discussed further above. The building network 204 is a communication network that allows communication between the control station 202 and the controllers 206, 208 and 210, as well as other devices not depicted in FIG. 2. Such building networks are known in the art. Suitable building communication networks designed for use with the INSIGHT™ model workstation include building level networks available with the APOGEE™ building automation system also available from Siemens Building Technologies, Inc.

The first controller 206 is a device that is operable to receive one or more sensor inputs and generate controlled process outputs based on the sensor inputs and one or more set points. Sensor inputs, for example, may be representative of measured temperature values. Controlled process outputs, for example, may be actuator signals that cause a ventilation damper to further open or further close. Various suitable commercially available equipment controllers are known in the art, including modular equipment controllers available from Siemens Building Technologies, Inc.

To generate the process output based on set points and sensor inputs, the first controller 206 is operable to perform a control function, such as a proportional control function, a proportional-integral control function, or a proportional-integral-derivative (“PID”) control function (or possibly others). Such control functions use values representative of a measured phenomenon to determine how to manipulate a physical process to attempt to bring the measured phenomenon toward a set point.

In the embodiment shown in FIG. 2, the equipment controller 206 is operable to generate an output that causes either or both of the dampers 114 and 116 to open or close in response to temperature sensor values received from the temperature sensors 126 and 128. The equipment controller 206 is further operable to receive the set point temperature value from the space temperature adjuster 130. In some embodiments, the equipment controller 206 may receive temperature set points from other devices, such as the control station 202, via the building network 204. The equipment controller 206 may utilize set points from the control station 202 and the space temperature adjuster 130 at different times of day, or for different purposes.

Regardless of whether the set point is received from the control station, the equipment controller 206 is also operable to communicate to other system control elements such as the control station 202 and the other equipment controllers 208 and 210, over the building network 204. Thus, for example, the equipment controller 206 is operable to communicate sensor values generated by the temperature sensors 126 and 128 to the control station 202 and/or the other controllers 208 and 210.

The other equipment controller 208 is operable to generate an output that causes the shaft damper 112 to open or close in response to one or more sensor signals and set points. For example, the determination to further open or close the shaft damper 112 may depend at least in part on the measured air flow in the shaft branch 124. To this end, the equipment controller 208 is also operable to receive shaft air flow values from the shaft flow sensor 118. The controller 208 may then suitably be configured to generate the output based on the received shaft air flow values and a set point set by the control station 202. The control station 202 may alter the set point based in part on the temperature values measured by the temperature sensors 126 and 128, operating characteristics of the blower 110, or combinations of many factors.

It will be appreciated that the control algorithms and schemes of the HVAC system 200 are given by way of illustrative example, and that those of ordinary skill in the art may readily device suitable control schemes for HVAC systems of any particular building space. The exact nature of how to develop specific applications of control schemes is outside the scope of the disclosure and would be readily apparent to those of ordinary skill in the art.

In accordance with the present invention, a system 150 for developing and storing a model of the building system 100 is operably connected to communicate to the control station 202. Such a connection may be through an intranet, the Internet, or other suitable communication scheme. In alternative embodiments, the system 150 and the control station 202 are present on the same host computer system.

In any event, the system 150 includes I/O devices 152, a processing circuit 154 and a memory 156. The I/O devices 152 may include a user interface, graphical user interface, keyboards, pointing devices, remote and/or local communication links, displays, and other devices that allow externally generated information to be provided to the processing circuit 154, and that allow internal information of the system 150 to be communicated externally.

The processing circuit 154 may suitably be a general purpose computer processing circuit such as a microprocessor and its associated circuitry. The processing circuit 154 is operable to carry out the operations attributed to it herein.

Within the memory 156 is a model 158 of the building system 100. The model 158 is a collection of interrelated data objects representative of, or that correspond to, elements of the building system 100. Elements of the building system may include any of the illustrated in FIGS. 1 and 2, as well as other elements typically associated with building systems. Building system elements are not limited to HVAC elements, but may include security devices such as the security sensor 132 or the like, fire safety system devices, lighting equipment, or other building equipment.

An example of the model 158 of the HVAC system 200 of FIGS. 1 and 2 is illustrated in FIG. 3 in further detail. With reference to FIG. 3, the model 158 includes a building zone object 301, a first room space object 302, a first window object 302 a, a second room space object 304, a hall space object 306, a mechanical space object 308, a blower object 310, a shaft damper object 312, a first room damper object 314, a second room damper object 316, a flow sensor object 318, a first room inlet object 320, a second room inlet object 322, a shaft branch object 324, a first temperature sensor object 326, a second temperature sensor object 328, a space temperature adjuster object 330, a first equipment controller object 406, a second equipment controller object 408 and a blower controller object 410.

The objects generally relate to either primarily physical building structures or building automation system devices. Building structure (or space) objects correspond to static physical structures or locations within a building space, such as room spaces, hall spaces, mechanical spaces, and shaft elements. Building automation system device objects correspond to active building automation system elements such as sensors, dampers, controllers and the like. It is noted that some elements, such as ventilation shaft elements, could reasonably qualify as both types of elements in other embodiments. However, in the exemplary embodiment described herein, the shaft elements are considered to be building structure elements as they tend to define a subspace within the building space.

Each object in the model 158 corresponds to an element of the building system of FIGS. 1 and 2. Table 1, below lists the objects, and defines the element of the building system to which they correspond. TABLE 1 OBJECT No. CORRESPONDING ELEMENT 301 Zone 100 302 Room Space 102  302a Window 102a 304 Room Space 104 306 Hall Space 106 308 Mechanical Space 108 310 Blower 110 312 Shaft Damper 112 314 First Room Damper 114 316 Second Room Damper 116 318 Flow Sensor 118 320 Room Inlet 120 322 Room Inlet 122 324 Shaft Branch 124 326 Temperature Sensor 126 328 Temperature Sensor 128 330 Temperature Adjuster 130 406 Equipment Controller 206 408 Equipment Controller 208 410 Equipment Controller 210

Each object is a data object having a number of fields. The number and type of fields are defined in part by the type of object. For example, a room space object has a different set of fields than a temperature sensor object. A field usually contains information relating to a property of the object, such as a description, identification of other related objects, and the like.

The model 158 is built by creating objects from a library of templates 160 (see FIG. 2), which may also be stored in the memory 156. The library of templates 160 contain templates for several types of objects, and ideally for all types of object. Various examples of templates are discussed herein. In particular, FIG. 5 shows a building zone template 502, FIG. 6 shows a room space template 602, FIG. 7 shows an inlet shaft segment template 702, FIG. 8 shows a temperature sensor template 802, and FIG. 9 shows a damper space template. Other templates for other elements may be developed by those of ordinary skill in the art applying the principles illustrated herein.

FIG. 4 shows an exemplary method that may be used to generate a model such as the model 158. In step 402, the user generates a new object for a selected building system element, and gives the object an identification value or name. To this end, the user may enter information through the I/O devices 152 of the system 150 of FIG. 2.

Thereafter, in step 404, the user selects an object template corresponding to the selected building system element. To this end, the processing device 154 may cause the I/O devices 152 to display one or more menus of templates available from the template library 160 stored in the memory 156. The user may then use the I/O devices 152 to enter a selection, which is received by the processing device 154.

Then, in step 406, the user instantiates the selected object template by providing appropriate values to the fields available in the object template. To this end, the processing device 154 may suitably prompt the user for each value to be entered as defined by the selected template. The types of values entered will vary based on the type of template. Building structure templates vary, but share some similarities, as do building automation device templates.

Once the object is instantiated, the processing circuit 154 stores the object in the memory 156 in a manner that associates the object with the model 158. In step 408, the user may select whether additional objects are to be created. If not, then the process is completed. If so, however, then the user creates and names a new object in step 402 and proceeds as described above.

Examples of templates, and how such templates would be populated or instantiated using the data of the building system of FIGS. 1 and 2, are provided below in connection with FIGS. 5-9. It will be appreciated that the objects may suitably take the form of an XML object or file.

FIG. 5, for example, shows a building zone template 502. When the user creates an object for the building zone 100 of the building system of FIGS. 1 and 2, the user employs the building zone template 502. The building zone template 502 in the exemplary embodiment described herein has an identifier value, a type identifier, and four fields: a child field 512, a graphic field 514, a parent field 516, and a common name field 518. The data structure contained in, or pointed to by the value in, the child field 512 is an array. Each element of the array is an identifier value for child entities of the building, such as room spaces, hall spaces and the like. The identifier value may suitably be the identifier of the object corresponding to those child entities. The child field 512 thus allows the building object to be associated with other objects, namely room space, hall space and other space objects, in the model 158.

The graphic field 514 contains a pointer to a graphics file. The graphics file contains a graphical representation of the zone, such as a floor plan similar to that illustrated in FIG. 1. The data structure for the parent field 516 may suitably be a single value, as most building structure objects should have only single parent object. The value of the parent field 516 may suitably be the identifier for the building object of the building in which the building zone is located. For example, the building zone 100 of FIG. 1 may be a floor or wing of a building, and thus its parent object is the object for the entire building. The common name field 518 is a string. The common name field 518 could contain a commonly known name for the building zone, such as the “first floor”, or “eastern wing”. Thus, the building zone template 502 provides two ways to identify the building: the system object identifier and the common name.

FIG. 5 a shows the building object 301 formed by instantiating the building template 502 with the data associated with the zone 100. The name “100_GRAPHIC” represents the file reference for the graphic of the zone 100, and the name “BLDG_OBJECT” represents an object name for an object that describes the overall building, not shown, but which includes the building zone 100.

FIG. 6 shows a room space object template 602. When the user creates an object for each of the first room space 102 and the second room space 104, the user employs the room space object template 602. The room space object template 602 in the exemplary embodiment described herein has an identifier value, a type identifier, and seven or more fields: a child field 612, a parent field 614, a graphic field 616, a sensor value field 620, a square foot field 622, a volume field 624, a location field 626, as well as others. The data structure for the child field 612 is an array, with each element of the array being an identifier value for child entities of the room space, such as cubicles, work spaces or other subdivisions of a room. The data structure of the parent field 614 may suitably be a value, as each room space typically should have only one direct parent.

The graphic field 616 contains a pointer to a graphics file that contains a graphical representation of the room space. The data structure for the sensor value field 620 is an array containing the identification of each sensor value generated within the room. In most advanced HVAC systems, each sensor value is a data point that may accessed by an identifier. Each sensor value is associated (within the model 158 and the HVAC system 200) with the sensor device that created it. For example, the temperature measured by the temperature sensor 126 may be identified as data point 126 t. As discussed above, the sensor value field 620 contains an array of such sensor value data point identifiers.

The square foot field 622 and the volume field 624 may be integer or floating point values that provide information on the dimensions of the room space. The location field 626 is a data structure that contains coordinates and possibly shape information of the room space. The data structure of the location field 626 may suitable be an array of coordinates of four corners of the room space. Other fields, not shown, may otherwise identify the building automation equipment that is present in the room space.

FIG. 6 a shows the room space object 302 formed by instantiating the room space template 602 with the data associated with the first room space 102. FIG. 6 b shows the room space object 304 formed by instantiating the room space template 602 with the data associated with the second room space 104. It will be appreciated that in FIGS. 6 a and 6 b, the location field is populated by a single coordinate of a reference point, e.g. the centerpoint, of the room space. As discussed above, the location field 626 may be implemented in many different ways. It will further be appreciated the sensor value identifiers for the sensor devices 126 and 128 are named 126 t and 128 t in the exemplary embodiment of FIGS. 6 a and 6 b.

FIG. 7 shows an inlet object template 702. When the user creates an object for each of the room inlets 120 and 122, the user employs the inlet object template 702. The inlet object template 702 in the exemplary embodiment described herein has an identifier value, a type identifier, and eight or more fields: a parent field 712, a space field 714, a graphic field 716, a sensor value field 718, a cross-sectional area field 720, a length field 722, a BAS device field 724, a location field 726, and possibly others. The data structure for the parent field 712 may suitably be a single value that identifies a parent shaft to which the inlet shaft segment is connected. The space field 714 is a value that identifies the room space, hall space or other type of space into which the inlet segment provides fluid communication. The value is the object identifier the corresponds to that space.

The graphic field 716 contains a pointer to a graphics file that contains a graphical representation of the inlet shaft segment. The data structure for the sensor value field 718 is an array containing the identification of each sensor value generated within the inlet shaft segment. The cross section area field 720 and the length field 722 may be integer or floating point values that provide the dimensions of the inlet shaft segment. The BAS device field 724 contains the identifiers of any controllable BAS devices within the inlet shaft segment. The location field 726 is a data structure that contains location coordinates for the inlet shaft segment.

FIG. 7 a shows the inlet segment object 320 formed by instantiating the inlet segment template 702 with the data associated with the first inlet segment 120. FIG. 7 b shows the inlet segment object 322 formed by instantiating the inlet segment template 702 with the data associated with the second inlet segment 122.

FIG. 8 shows a temperature sensor object template 802. When the user creates an object for each of the first temperature sensor object 126 and the second temperature sensor object 128, the user employs the temperature sensor object template 802. The temperature sensor object template 802 in the exemplary embodiment described herein has an identifier value, a type identifier, and five or more fields: a space location field 812, a vendor field 814, a characteristics field 816, a vendor model field 818, a measured temperature point identifier field 820 and possibly others. The data structure for the space location field 812 is a value of the identifier of the object for the room space, hall space or other space in which the sensor device is located. The vendor field 814 may suitably be a string value (or a look-up table code) that identifies the vendor for the sensor. The characteristics field 816 contains a pointer a string, array, graphic or other file that provides characteristics of operation of the sensor, such as graphic performance information or the like. The vendor model field 818 is a string value providing the commercial model number for the device. The measured temperature point identifier field 820 contains of the identification of the system data point of the temperature measured by the sensor. As discussed further above, each measured value (and also control value) has a data point identifier in a typical HVAC network. The temperature sensor object template 802 thus contains at least one field that identifies the data point in which the temperature data obtained by the temperature sensor is stored and transported.

FIG. 8 a shows the temperature sensor object 326 formed by instantiating the temperature sensor template 802 with the data associated with the first temperature sensor 126. FIG. 8 b shows the temperature sensor object 328 formed by instantiating the temperature sensor template 802 with the data associated with the second temperature sensor 128.

FIG. 9 shows a damper object template 902. When the user creates an object for each of the dampers 112, 114 and 116, the user employs the damper object template 902. The damper object template 902 in the exemplary embodiment described herein has an identifier value, a type identifier, and five or more fields: a space location field 912, a vendor field 914, a characteristics field 916, a vendor model field 918, and a damper actuator control value point identifier field 920, and possibly others. The data structure for the space location field 912 is a value of the identifier of the shaft branch, inlet segment, outlet segment or other shaft space in which the damper is located. The vendor field 914 may suitably be a string value (or a look-up table code) that identifies the vendor for the damper and/or its actuator. The characteristics field 916 contains a pointer a string, array, graphic or other file that provides characteristics of operation of the damper and/or its actuator, such as energy characteristics, performance information, or the like. The vendor model field 918 is a string value providing the commercial model number for the device. The damper actuator control value point identifier field 920 contains of the identification of the system data point of the control value used to change the position of the damper. As is known in the art, the damper position is physically moved by an actuator, the actuator causing movement responsive to control value. The damper object 902 thus contains thee field 920 to identify the data point in which the control information for the damper is stored and transported.

FIG. 9 a shows the damper object 312 formed by instantiating the damper template 902 with the data associated with the shaft damper 112. FIG. 9 b shows the damper object 314 formed by instantiating the damper template 902 with the data associated with the first room damper 114. FIG. 9 c shows the damper object 316 formed by instantiating the damper template 902 with the data associated with the second room damper 116.

It will be appreciated that suitable templates may readily be created by those of ordinary skill in the art for other elements, such as, for example, flow sensors and shaft branches, water valve actuators, controllers, and other devices of the building system 100, as extensions of the examples described above. Using the above examples as a guide, those of ordinary skill in the art may readily develop appropriate templates for other building automation systems, such as security systems, fire safety systems, and the like.

The building model 158 thus provides a relatively comprehensive description of each of the building automation system devices, and relates those devices to the physical structure of the building. To this end, the building automation system device objects include, in addition to references to relevant control values of the device, but also information as to what part of the building space in which the device is located. Moreover, the building space objects are arranged hierarchically, to further interrelate system devices and values with different “zoom” levels of the building structure. It will be appreciated that the actual data objects may take many forms and still incorporate these features of the invention.

The model 158 and different models incorporating the same general principles have limitless potential for enhancing building automation system services. Software applications may use the model 158 to relate building information innumerable ways to provide better understanding and operation of building systems.

FIG. 10 shows an exemplary structure for providing a software interface arrangement 1000 to a building model such as the model 158. The software interface 1000 includes a library of functions 1002 that utilize the model 158 to provide useful information about the building system 100, and an interface 1008. By way of example, FIG. 10 shows first and second user applications 1004 and 1006, respectively, that utilize library functions 1002 and the model 158 to obtain building system information.

The function library 1002 contains, among other things, generic software functions 1002 a, 1002 b, and so forth, for various elements of the building system. By way of example, there may be one or more trend functions that generate trend information for various sensor measurements in the building system 101, selfdiagnose functions that perform diagnostic functions of various building automation devices, and/or maxtemp functions that obtain a maximum temperature reading for a zone in the building system 100. Any number of other functions useful in building control systems may be employed. Because most if not all objects in the model 158 are built from standard templates, software routines that use the model may be made in a relatively generic sense. At a minimum, a user application 1004 or 1006 may easily incorporate functions involving various building devices that would have been extremely difficult to incorporate using prior building control systems.

User applications 1004, 1006 could call system functions by identifying the function name and one or more building objects for or on which the function is being performed. A protocol may allow a single code line of the application 1004 (or 1006) to generate the call. For example, the following function calls may be made with the objects of the model 158 (see Table I, above).

-   301.304.128.trend //calls a “trend” function for the temperature of     room space 104 -   301.310.selfdiagnose //calls a self-diagnostic function for the     blower 110 -   301.maxtemp //calls a maximum temperature reading function for the     zone 100

The software interface 1008 in each case would identify the proper function based on at least the function name (i.e. trend, selfdiagnose, maxtemp) and the information identifying the relevant device (i.e. object identifiers 128, 310, 301). To this end, as shown in FIG. 11, the software interface 1008 first, in step 1102, receives the call (i.e. 301.310.selfdiagnose) and identifies the selfdiagnose function and object 301. The software interface 1008 then, in step 1104, uses rules associated with selfdiagnose to identify the library function 1002 to call, based on the object 310. By way of example, there may exist several library functions selfdiagnose corresponding to each type of object or building automation device. The rules of the software interface 1008 preferably cause the software interface 1008 to reference the object 310 to determine that the object type=blower, and then identifies the routine that performs a self diagnosis operation on a blower. Other selfdiagnose library functions may perform self-diagnostics on other equipment, such as sensors, actuators, chillers and the like.

In step 1106, the software interface 1008 calls the appropriate library function as identified in step 1104 and passes the appropriate parameters. For example, the software interface calls the library function 1002 x that has the process for performing self-diagnostics on a blower. The software interface 1008 further passes parameters to the library function 1002 x that identify the blower object 310 itself, along with any other parameters generated by the application 1004 or the interface 1008 itself. The model 158 provides the necessary information to allow the library function 1002 x to perform the diagnostics on the blower 110.

In some cases, a single library function 1002 n may serve for all instances of a particular function, such as maxtemp, discussed below. In an exemplary maxtemp routine, a software application may be developed to find the highest temperature in each “zone” of a building. The general function may be made generic, regardless of what “kind” of zone is used. In other words, the maxtemp routine may be made generic for buildings, floors, rooms, halls or other space configuration.

Such a generic routine may be readily accomplished using the general operations listed below:

-   -   1) check all child objects of the identified zone (i.e. room         objects, hall objects, etc.) to identify all temperature sensor         values associated with the child objects of each zone. The         identified temperature sensor values for each zone constitute         list of temperature data point identifiers for each zone;     -   2) obtain the current measured temperatures for each zone, or in         other words, obtain the values of the identified temperature         point identifiers for each zone; and     -   3) identify the highest value for each zone.         The model 158 makes it simple to identify which temperature data         points are associated with each room space, zone space or         building space. The above example is non-limiting is merely         illustrates one of the advantages of the model.

It will be appreciated that the above describe embodiments are merely exemplary, and that those of ordinary skill in the art may readily devise their own modifications and implementations that incorporate the principles of the present invention and fall within the spirit and scope thereof.

Additional features of some embodiments of the invention are descried in Appendix A. 

1. A software interface for a model of a building system stored in a memory, the model comprising a plurality of building space objects, at least one building space object including a reference to at least one of the group consisting of a parent building space object and a child building space object, and a reference to information regarding one or more building automation devices associated with the building space object, and at least one building automation device object, each building automation device object including a reference to a corresponding building space object, and a reference to at least one operating value of the building automation device, the software interface comprising: logic for receiving a call comprising a function identifier and at least one object identifier, the function identifier representative of a function applicable to a plurality of object types; logic for employing the function identifier and the at least one object to call a software function in a function library, the software function corresponding to the function applicable to the object type that corresponds to the at least one object. 